The technology described herein relates to a method of and a system for providing an output surface (such as a frame to be displayed) in a data processing system, and in particular to providing an output surface that is composited (generated) from one or more input surfaces (such as input windows) in a data processing system.
Many electronic devices and systems use windows for displaying information, such as a graphical user interface, game, demo, etc., to a user on a display screen (and for allowing a user to interact with an application or applications being executed).
A common way of providing such windows is to use a compositing window system, in which individual input windows are combined appropriately (i.e. composited), e.g. by a composition engine, and the result is written out to a frame buffer, which is then read by a display controller for the display in question in order to display the windows to the user. Since such systems write out to a frame buffer and this buffer is then read for display, they are often referred to as frame buffer composition systems.
As well as such frame buffer composition systems, there also exist direct composition systems, in which a composited frame is generated from input surfaces (windows) and then output to a display directly (i.e. not via intermediate storage in a frame buffer), e.g. by a compositing display controller.
In such composition systems, a number of hardware resources, including dedicated registers that store, e.g. a pointer to the frame buffer in memory, frame buffer size, crop and format information, and a dedicated input FIFO, are typically provided for each input surface that the composition system can composite into an output surface. As these hardware resources required for each input surface are fairly substantial, most composition engines or compositing display controllers only support a limited number of input surfaces, such as between three and eight input surfaces.
However, there is generally no upper bound on the number of input surfaces that could be required to be composited. In the case where the number of input surfaces to be composited exceeds the number of input surfaces that the hardware resources of the composition system can support, then it is possible to offload some of the composition operation to a separate processor, such as a graphics processing unit (GPU) or a CPU, but this is not always possible or ideally desirable.
The Applicant believes therefore that there remains scope for improvements to composition systems.
Like reference numerals are used for like features throughout the drawings where appropriate.